//
//  ZQBaseDao.h
//  ZQSmartLife
//
//  Created by huanghuan on 15/6/10.
//  Copyright (c) 2015年 huanghuan. All rights reserved.
//  数据库操作的基类，定义基本的增删改查

#import <Foundation/Foundation.h>
#import "ZQDBHelper.h"
@interface ZQBaseDao : NSObject
-(BOOL) executeUpdate:(NSString *) sql;
-(BOOL) executeMutiUpdate:(NSArray *) sqlArray;
@property(nonatomic,strong) NSMutableDictionary * columnNameToIndexMap;
@property(nonatomic,assign) sqlite3_stmt *statement;
@property(nonatomic,strong) NSString * tableName;

/**
 根据条件查询 无条件即传nil
 @param condStr 条件
 @return 返回对应的model 列表,如果没有查到，则返回空数组
 */
-(NSArray *) getItemsByCondStr:(NSString *) condStr;

/**
 插入
 @param itemLists 数据库对象列表
 @param return 所有数据插入成功则返回YES，否则返回NO,插入失败后会回滚
 */
-(BOOL) insertItems:(NSArray *) itemLists;
/**
删除
 @param itemLists 数据库对象列表,根据ID删除
 @param return 所有数据删除成功则返回YES，否则返回NO,删除失败后会回滚
 */
-(BOOL) deleteItems:(NSArray *) itemLists;

#pragma -mark 数据解析
//数据解析，解析查询的数据，子类重写，返回相应地对象
-(id) parseStatement;

//解析列
-(NSString *) stringForColumn:(NSString *) columnName;
-(NSString *) stringForColumnIndex:(int) columnIdx;
-(int) intForColumn:(NSString *) columnName;
-(NSUInteger) int64ForColumn:(NSString *) columnName;
@end
